layui.extend({
	treeGrid: '{/}/plugins/treeGrid/web/design/extend/treeGrid',
});
layui.define([ 'form', 'laydate', 'table','treeGrid' ], function(exports) {
	var form = layui.form;
	var laydate = layui.laydate;
	var table = layui.table;
	var dictTable = null;
    var treeGrid = layui.treeGrid;
    var el = '#dictTable';
	var view = {
		init : function(type) {
			this.initTable(type);
			this.initSearchForm();
			this.initToolBar();

			window.dataReload = function() {
				//Lib.doSearchForm($("#searchForm"), dictTable)
				var data = $("#searchForm").serializeJson();
				treeGrid.reload(el,{
                    where:data
				});
			}

		},
		initTable : function(type) {
		    layui.link("/plugins/treeGrid/web/design/css/layui.css");//引入treeGrid中需要的css样式，由于跟layui.css可能冲突，在此单独引入
            treeGrid.render({
                id:el
                ,elem: el
                ,url: Common.ctxPath + '/admin/dict/tree.json'
                ,where : {type:type}
                ,cellMinWidth: 100
                ,idField:'id'//必須字段
                ,treeId:'id'//树形id字段名称
                ,treeUpId:'parent'//树形父id字段名称
                ,treeShowName:'name'//以树形式显示的字段
                ,height:'100%'
                ,isFilter:false
                ,iconOpen:true//是否显示图标【默认显示】
                ,isOpenDefault:true//节点默认是展开还是折叠【默认展开】
                ,loading:true
                ,method:'post'
                ,isPage:false
                ,limit:1000
                ,cols : [ [ //表头
                    {
                        type : 'checkbox',
                        fixed : 'left',
                    }, {
                        field : 'id',
                        title : 'id',
                        width:80,
                        fixed : 'left',
                        sort : true
                    }, {
                        field : 'value',
                        title : '字典值',
                        fixed : 'left',
                    }, {
                        field : 'name',
                        title : '字典名称',
                    }, {
                        field : 'type',
                        title : '字典类型',
                    }, {
                        field : 'typeName',
                        title : '字典类型名称',
                    }, {
                        field : 'sort',
                        title : '排序',
                    }, {
                        field : 'parent',
                        title : '父字典',
                    },
                    {
                        title : '操作',
                        templet:"#optionTpl"
                    }
                    ] ]
                ,parseData:function (res) {//数据加载后回调
                    return res;
                }
                ,onClickRow:function (index, o) {
                    //console.log(index,o,"单击！");
                }
                ,onDblClickRow:function (index, o) {
                    //console.log(index,o,"双击");
                }
                ,onCheck:function (obj,checked,isAll) {//复选事件
                    //console.log(obj,checked,isAll,"复选");
                }
                ,onRadio:function (obj) {//单选事件
                    //console.log(obj,"单选");
                }
            });
		    /*
			dictTable = table.render({
				cellMinWidth: 80, //全局定义常规单元格的最小宽度，layui 2.2.1 新增
				elem : '#dictTable',
				height : Lib.getTableHeight(1),
				method : 'post',
				url : Common.ctxPath + '/admin/dict/list.json' //数据接口
				,
				page : Lib.tablePage //开启分页
				,
				limit : 100,
				cols : [ [ //表头
				{
					type : 'checkbox',
					fixed : 'left',
				}, {
					field : 'id',
					title : 'id',
					width:80,
					fixed : 'left',
					sort : true
				}, {
					field : 'value',
					title : '字典值',
					fixed : 'left',
				}, {
					field : 'name',
					title : '字典名称',
				}, {
					field : 'type',
					title : '字典类型',
				}, {
					field : 'typeName',
					title : '字典类型名称',
				}, {
					field : 'sort',
					title : '排序',
				}, {
					field : 'parent',
					title : '父字典',
				},

				{
					field : 'remark',
					title : '备注',
				}, {
					field : 'createTime',
					title : '创建时间',
				}

				] ]

			});
			*/
		},

		initSearchForm : function() {

		    $(document).on("click", "#searchFormSearch", function() {
                var data = $("#searchForm").serializeJson();
                treeGrid.reload(el,{
                    where:data
                });
            });
		},
		initToolBar : function() {
			toolbar = {
				add : function() { //获取选中数据
					var url = "/admin/dict/add.do";
					Common.openDlg(url, "字典数据管理>新增");
				},
				addSub : function() {
                    var id = $(this).attr("valueId");
                    var url = "/admin/dict/add.do?parent=" + id;
                    Common.openDlg(url, "字典数据管理>新增");
                },
				edit : function() { //获取选中数目
                    var id = $(this).attr("valueId");
                    var url = null;
                    if (id) {
                        url = "/admin/dict/edit.do?id=" + id;
                        var name = $(this).attr("name");
                        Common.openDlg(url, "字典数据管理>" + name + ">编辑");
                    } else {
                       var data = Common.getOneFromTable(treeGrid, el);
                        if (data == null) {
                            return;
                        }
                        url = "/admin/dict/edit.do?id=" + data.id;
                        Common.openDlg(url, "字典数据管理>" + data.value + ">编辑");
                    }
				},
				del : function() {
					layui.use([ 'del' ], function() {
						var delView = layui.del
						delView.delBatch(treeGrid);
					});
				},
				exportExcel : function() {
					layui.use([ 'dictApi' ], function() {
						var dictApi = layui.dictApi
						Common.openConfirm("确认要导出这些字典数据?", function() {
							dictApi.exportExcel($("#searchForm"), function(fileId) {
								Lib.download(fileId);
							})
						})
					});

				},
				importExcel:function(){
				    //上传路径
				    var uploadUrl = Common.ctxPath+"/admin/dict/excel/import.do";
				    //模板
				    var templatePath= "/admin/dict/dict_upload_template.xls";
				    //公共的简单上传文件处理
				    var url = "/core/file/simpleUpload.do?uploadUrl="+uploadUrl+"&templatePath="+templatePath;
                    Common.openDlg(url, "字典数据管理>上传");
				}

			};
			$(document).on("click", ".ext-toolbar", function() {
                var type = $(this).data('type');
                toolbar[type] ? toolbar[type].call(this) : '';
            });
		}
	}

	exports('index', view);

});